package org.demo;

import com.lmax.disruptor.EventHandler;

/**
 * @author yexi
 */
public class LongEventHandler implements EventHandler<LongEvent> {

    /**
     * 当publisher(发布者)将事件发布到 RingBuffer 时会调用。BatchEventProcessor会批量从RingBuffer读取消息，
     * 其中a batch is all of the events available to be processed，而无需等待任何新事件到达。
     * 这对于需要执行较慢操作（如 I/O）的事件处理程序非常有用，因为它们可以将来自多个事件的数据分组到单个操作中。
     * 实现应确保在 endOfBatch 为 true 时始终执行该操作，因为该消息与下一条消息之间的时间是独立的。
     *
     * @param event      被发布到 RingBuffer 的事件
     * @param sequence   正在处理的事件
     * @param endOfBatch 标志以指示这是否是RingBuffer中批处理的最后一个事件
     */
    public void onEvent(LongEvent event, long sequence, boolean endOfBatch) throws Exception {
        System.out.println(event.getValue());
    }
}
